In order to reduce design complexity, most computer networks are designed using a hierarchy of protocol layers, with each layer built upon the one below it. For example, the International Standard Organization's Open Systems Interconnection (ISO/OSI) reference model contains seven protocol layers. The top-most layer in the ISO/OSI model is the application protocol layer. Well-known application layer protocols include the Hypertext Transfer Protocol (HTTP), the File Transfer Protocol (FTP), the Telnet protocol, and the Simple Mail Transfer Protocol (SMTP).
The HTTP protocol is commonly used for fetching webpages and other files (e.g., text, software, images, video, audio, and other multimedia files) over the Internet. HTTP is a stateless request-response protocol that provides a structure for the message requests sent from clients to servers, and the message responses sent from servers to clients. For example, a client may be a web browser and a server may be an application running on a computing device hosting a web site. The client may submit an HTTP request to the server identified by a particular IP address, which in turn sends an HTTP response message back to the client. Typically, an end user of the HTTP client initiates an HTTP request by typing in a Uniform Resource Locator (URL) or selecting a hypertext link. The HTTP response message may contain information regarding the status of the request and/or the content requested by the client.
One method of delivering content over HTTP to end users in an efficient manner is to use a Content Delivery Network (CDN). A CDN comprises a collection of servers that may be optimized to deliver content to clients based on some measure of network proximity. The CDN servers, which are distributed across multiple locations, contain copies of a particular content to be distributed. The particular CDN server selected for delivering the particular content to a client may be the server with the fewest network hops or the server with the quickest response time. One problem with using CDNs to distribute content is that for some content the costs to support a Secure Socket Layer (SSL) connection or other secure connection may be cost prohibitive.